package zmq

import (
	"fmt"
)

var MsgGetThreshold = NewMsgReq(10001, "获取阈值")
var MsgSetThreshold = NewMsgReq(10002, "设置阈值")
var MsgGetReportTemplate = NewMsgReq(10003, "获取报告模板")
var MsgSetReportTemplate = NewMsgReq(10004, "设置报告模板")
var MsgGetLVEFThreshold = NewMsgReq(10005, "获取LVEF自动保存阈值")
var MsgSetLVEFThreshold = NewMsgReq(10006, "设置LVEF自动保存阈值")
var MsgSwitchPatientNotify = NewMsgReq(10009, "切换患者通知")
var MsgSwitchCheckTypeNotify = NewMsgReq(10010, "切换检查类型通知")
var MsgGetGradingStd = NewMsgReq(10012, "获取评级标准")
var MsgGetAiRecommendTubercles = NewMsgReq(10013, "获取AI推荐结节列表")
var MsgZmqPubKeepAlive = NewMsgReq(10014, "")
var MsgZmqPubVideoAnalysisTask = NewMsgReq(10015, "发布视频分析任务")
var MsgGetDisplayConfig = NewMsgReq(10017, "获取显示配置")
var MsgZmqPubImagesAnalysisTask = NewMsgReq(10019, "发布图片分析任务")
var MsgGetLicenseCode = NewMsgReq(10030, "获取注册码")

type ZmqMsgReqInfo struct {
	MsgType uint32 `json:"msgType"`
	MsgDesc string `json:"msgDesc"`
}

var msgs = map[uint32]string{}

func NewMsgReq(msgType uint32, msgDesc string) *ZmqMsgReqInfo {
	if _, ok := msgs[msgType]; ok {
		panic(fmt.Sprintf("zmq消息类型 %d 已经存在，请更换一个", msgType))
	}
	msgs[msgType] = msgDesc
	return &ZmqMsgReqInfo{MsgType: msgType, MsgDesc: msgDesc}
}
